package com.alm.token.common;

import android.content.Context;
import android.graphics.Color;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.widget.ProgressBar;

import com.afollestad.materialdialogs.GravityEnum;
import com.afollestad.materialdialogs.MaterialDialog;
import com.alm.token.R;

import java.util.List;

/**
 * Created by lidengzhou on 16/9/12.
 */
public class DialogHelper {

    /***
     * 获取一个耗时等待对话框
     * @param context
     * @param message
     * @return
     */

    public static MaterialDialog getWaitDialog(@NonNull Context context, String message) {
        MaterialDialog dialog = new MaterialDialog.Builder(context)
                .content(message)
                .progress(true, 0)
                .backgroundColor(Color.parseColor("#212121"))
                .contentColor(Color.parseColor("#cccccc"))
                .positiveColor(Color.parseColor("#c1c1c1"))
                .negativeColor(Color.parseColor("#cccccc"))
                .build();

        dialog.getProgressBar().setIndeterminateDrawable(context.getResources().getDrawable(R.drawable.dialog_wait));
        return dialog;

    }

    public static MaterialDialog getWaitDialog1(@NonNull Context context, String message) {
        return new MaterialDialog.Builder(context)
                .content(message)
                .progress(true, 0)
                .backgroundColor(Color.parseColor("#212121"))
                .contentColor(Color.parseColor("#cccccc"))
                .positiveColor(Color.parseColor("#c1c1c1"))
                .negativeColor(Color.parseColor("#cccccc"))
                .build();
    }


    /***
     * 获取一个信息对话框
     * @param context
     * @param message
     * @return
     */

    public static MaterialDialog getAlertDialog(@NonNull Context context, String title,
                                                String message, String positiveMsg, String negativeMsg) {
        return getAlertDialog(context, title, message, positiveMsg, negativeMsg, null);
    }

    public static MaterialDialog getAlertDialog(@NonNull Context context, String title,
                                                String message, String positiveMsg, String negativeMsg, MaterialDialog.SingleButtonCallback callback) {

        return new MaterialDialog.Builder(context)
                .content(message)
                .title(title)

                .positiveText(positiveMsg)
                .negativeText(negativeMsg)
                .dividerColor(Color.parseColor("#c1c1c1"))
//                .positiveText("确认")
//                .negativeText("取消")
                .titleColor(Color.parseColor("#cccccc"))
                .backgroundColor(Color.parseColor("#212121"))
                .contentColor(Color.parseColor("#cccccc"))
                .positiveColor(Color.parseColor("#c1c1c1"))
                .negativeColor(Color.parseColor("#cccccc"))


                .onAny(callback)
                .build();
    }

    public static MaterialDialog getAlertDialog(@NonNull Context context,
                                                String message, String positiveMsg, String negativeMsg, MaterialDialog.SingleButtonCallback callback) {
        return new MaterialDialog.Builder(context)
                .content(message)
                .positiveText(positiveMsg)
                .negativeText(negativeMsg)
//                .positiveText("确认")
//                .negativeText("取消")
                .backgroundColor(Color.parseColor("#212121"))
                .contentColor(Color.parseColor("#cccccc"))
                .positiveColor(Color.parseColor("#c1c1c1"))
                .negativeColor(Color.parseColor("#cccccc"))
                .onAny(callback)
                .build();
    }

    public static MaterialDialog getInformationDialog(@NonNull Context context,String title,
                                                      String message, String positiveText, String negativeText, MaterialDialog.SingleButtonCallback callback) {
        MaterialDialog dialog =new MaterialDialog.Builder(context)
                .title(title)
                .content(message)

                .dividerColor(context.getResources().getColor(R.color.white))
                .positiveText(positiveText)
                .negativeText(negativeText)
                .contentGravity(GravityEnum.CENTER)
                .titleColor(Color.parseColor("#cccccc"))
                .backgroundColor(Color.parseColor("#212121"))
                .contentColor(Color.parseColor("#cccccc"))
                .positiveColor(Color.parseColor("#c1c1c1"))
                .negativeColor(Color.parseColor("#cccccc"))
                .onAny(callback)
                .build();
//        dialog.set
        dialog.getContentView().setEllipsize(TextUtils.TruncateAt.END);
        dialog.getContentView().setMaxLines(5);

        return dialog;
    }

//    public static MaterialDialog getInformationDialog(@NonNull Context context,
//                                                      String message, String positiveText, MaterialDialog.SingleButtonCallback callback) {
//        return new MaterialDialog.Builder(context)
//                .content(message)
//                .contentGravity(GravityEnum.CENTER)
//                .positiveText(positiveText)
//                .backgroundColor(Color.parseColor("#212121"))
//                .contentColor(Color.parseColor("#cccccc"))
//                .positiveColor(Color.parseColor("#c1c1c1"))
//                .negativeColor(Color.parseColor("#cccccc"))
//                .onAny(callback)
//                .build();
//    }

    public static MaterialDialog getInformationDialog(@NonNull Context context,
                                                      String title, String message, String positiveText, MaterialDialog.SingleButtonCallback callback) {
        return new MaterialDialog.Builder(context)
                .title(title)
                .backgroundColor(Color.parseColor("#212121"))
                .contentColor(Color.parseColor("#cccccc"))
                .positiveColor(Color.parseColor("#c1c1c1"))
                .negativeColor(Color.parseColor("#cccccc"))
                .content(message)
                .positiveText(positiveText)
                .onAny(callback)
                .build();
    }

    public static MaterialDialog getConfirmDialog(@NonNull Context context, String title,
                                                  String message, String positiveText, String negativeText, MaterialDialog.SingleButtonCallback callback) {
        return new MaterialDialog.Builder(context)
                .title(title)
                .content(message)
                .positiveText(positiveText)
                .negativeText(negativeText)
                .backgroundColor(Color.parseColor("#212121"))
                .contentColor(Color.parseColor("#cccccc"))
                .positiveColor(Color.parseColor("#c1c1c1"))
                .negativeColor(Color.parseColor("#cccccc"))
                .onAny(callback)
                .build();
    }

    public static MaterialDialog getConfirmDialog(@NonNull Context context,
                                                  CharSequence message, String positiveText, String negativeText, MaterialDialog.SingleButtonCallback callback) {
        return new MaterialDialog.Builder(context)
                .content(message)
                .positiveText(positiveText)
                .negativeText(negativeText)
                .backgroundColor(Color.parseColor("#212121"))
                .contentColor(Color.parseColor("#cccccc"))
                .positiveColor(Color.parseColor("#c1c1c1"))
                .negativeColor(Color.parseColor("#cccccc"))
                .onAny(callback)
                .build();
    }

    public static MaterialDialog getListDialog(@NonNull Context context, List<String> items, MaterialDialog.ListCallback listCallback) {
        return new MaterialDialog.Builder(context)
                .items(items)
                .backgroundColor(Color.parseColor("#212121"))
                .contentColor(Color.parseColor("#cccccc"))
                .positiveColor(Color.parseColor("#c1c1c1"))
                .negativeColor(Color.parseColor("#cccccc"))
                .itemsCallback(listCallback)
                .build();
    }

    public static MaterialDialog getProgressDialog(@NonNull Context context, String message, MaterialDialog.SingleButtonCallback callback) {
        MaterialDialog dialog= new MaterialDialog.Builder(context)
                .progress(false, 100)
                .title(context.getString(R.string.common_downloading))
                .titleColor(Color.parseColor("#cccccc"))
                .backgroundColor(Color.parseColor("#212121"))
                .contentColor(Color.parseColor("#cccccc"))
                .positiveColor(Color.parseColor("#c1c1c1"))
                .negativeColor(Color.parseColor("#cccccc"))
                .onAny(callback)
                .build();
        return dialog;
    }

}
